perm filename N[G,BGB]4 blob sn#053581 filedate 1973-07-16 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00005 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	LINK MACROS
C00005 00003	 NAMES OF NODE DATA WORDS.
C00007 00004	TYPE BIT OPERATIONS.
C00008 00005	PROPERTY-TYPE BITS.
C00010 ENDMK
C⊗;
;LINK MACROS
	DEFINE LEFT $(NAM,WRD,Z){
	IFIDN<><Z><DEFINE NAM(A,Q)<CAR A,WRD(Q)>>
	IFDIF<><Z><DEFINE NAM(A,Q)<NIP A,WRD(Q)>>
	DEFINE NAM$.(A,Q)<DIP A,WRD(Q)>}

	DEFINE RIGHT $(NAM,WRD,Z){
	IFIDN<><Z><DEFINE NAM(A,Q)<CDR A,WRD(Q)>>
	IFDIF<><Z><DEFINE NAM(A,Q)<NAP A,WRD(Q)>>
	DEFINE NAM$.(A,Q)<DAP A,WRD(Q)>}

;DEFINE GEM LINK NAMES.

	LEFT(X1DC,-3,N)↔	RIGHT(Y1DC,-3,N)
	LEFT(X2DC,-2,N)↔	RIGHT(Y2DC,-2,N)
	LEFT(IIIDX,-2,N)↔	RIGHT(IIIDY,-2,N)
	LEFT(TCW,-1)↔		RIGHT(TCCW,-1)
	LEFT(YNF,-1)↔		RIGHT(YPF,-1)
	LEFT(TYPE,0)
	DEFINE $TYPE(Q,E)<LDB Q,[POINT 4,(E),35]>
	LEFT(NFACE,1)↔		RIGHT(PFACE,1)
   DEFINE XDC (Q,E)<HLLE Q,1(E)>↔DEFINE YDC (Q,E)<HRLE Q,1(E)>
   DEFINE XDC.(Q,E)<HLLM Q,1(E)>↔DEFINE YDC.(Q,E)<HLRM Q,1(E)>
	LEFT(NED,2)↔		RIGHT(PED,2)
	LEFT(PY,2)↔		RIGHT(NY,2)
	LEFT(NCNT,2,N)
	LEFT(NVT,3)↔		RIGHT(PVT,3)
	LEFT(PTEXT,3)↔		RIGHT(DPSIZ,3,N)
	LEFT(PARRW,3)↔		
	LEFT(NCW,4)↔		RIGHT(PCW,4)
	LEFT(DAD,4)↔		RIGHT(SON,4)
	LEFT(NWRLD,4)↔		RIGHT(PWRLD,4)
	LEFT(NCAMR,4)↔		RIGHT(PCAMR,4)
	LEFT(NCCW,5)↔		RIGHT(PCCW,5)
	LEFT(NTIME,5)↔		RIGHT(PTIME,5)
	LEFT(BRO,5)↔		RIGHT(SIS,5)
	LEFT(ALT,6)↔		RIGHT(ALT2,6)
	RIGHT(FRAME,6)↔		RIGHT(POTEN,6)
	LEFT(CW,7)↔		RIGHT(CCW,7)
	LEFT(SIMAG,7)↔		RIGHT(PIMAG,7)
DEFINE YCODE(Q,E)<LDB Q,[POINT 6,7(E),5]>
DEFINE YCODE.(Q,E)<DPB Q,[POINT 6,7(E),5]>
; NAMES OF NODE DATA WORDS.

	↓AA ←← ↓XWC ←← -3
	↓BB ←← ↓YWC ←← -2
	↓CC ←← ↓ZWC ←← -1

	↓QQ ←← 7
	↓KK ←← 3

	↓OFFSET←←-2
	↓YREL←← 7

	↓XPP ←← 4↔	↓YPP ←← 5↔	↓ZPP ←← 6
	↓IX←←0↔ 	↓IY←←1↔ 	↓IZ←←2
	↓JX←←3↔ 	↓JY←←4↔ 	↓JZ←←5
	↓KX←←6↔ 	↓KY←←7↔ 	↓KZ←←8

;NODE SERIAL TYPE NUMBERS.

	↓$FRAME		←←	0
	↓$EMPTY		←←	1
	↓$UNIVERSE	←←	2
	↓$SUN		←←	3

	↓$CAMERA	←←	4
	↓$WORLD		←←	5
	↓$WINDOW	←←	6
	↓$IMAGE		←←	7

	↓$TEXT		←←	10
	↓$XNODE		←←	11
	↓$YNODE		←←	12
	↓$ZNODE		←←	13

	↓$BODY 		←←	14
	↓$FACE 		←←	15
	↓$EDGE 		←←	16
	↓$VERT 		←←	17

	↓$TEXTHD	←←	1
	↓$ARROW		←←	2

	↓.RLTXT		←←	$TEXTHD*1B5+0140B17+0040	;LIKE A VERTEX
	↓.RLARW		←←	$ARROW*1B5+0144B17+0144	;LIKE A VERTEX
;TYPE BIT OPERATIONS.

	DEFINE MARK(Q,BITS){
	IFE BITS⊗-22,{LACI BITS}
	IFN BITS⊗-22,{SLACI(BITS)}
	IORM(Q)}

	DEFINE MARKZ(Q,BITS){
	IFE BITS⊗-22,{LACI BITS}
	IFN BITS⊗-22,{SLACI(BITS)}
	ANDCAM (Q)}

	DEFINE TEST(Q,BITS){
	LAC(Q)
	IFE BITS⊗-22,{TRNN BITS }
	IFN BITS⊗-22,{TLNN(BITS)}}

	DEFINE TESTZ(Q,BITS){
	LAC(Q)
	IFE BITS⊗-22,{TRNE BITS }
	IFN BITS⊗-22,{TLNE(BITS)}}
;PROPERTY-TYPE BITS.
	↓PBIT ←← 1B30		;PART.
	↓TBIT3←←1B20
	↓TBIT2←←1B19
	↓TBIT1←←1B18
	↓BBIT ←← 1B17
	↓FBIT ←← 1B16
	↓EBIT ←← 1B15
	↓VBIT ←← 1B14

	↓PZZ ←← 1B1
	↓NZZ ←← 1B10

	↓FOLDED ←← 1B11
	↓VISIBLE ←← 1B12
	↓POTENT ←← 1B13
	↓DARKEN ←← 1B3
	↓NSHARP ←← 1B4

	↓NORTH ←← 1B5
	↓SOUTH ←← 1B6
	↓EAST  ←← 1B7
	↓WEST  ←← 1B8
	↓NSEW  ←← 17B8

	↓JUTBIT ←← 1B3
	↓JOTBIT ←← 1B4
	↓CONBIT←←JOTBIT		;Text to be continued in next node.
	DEFINE HIDE(Q){
	SLACI(3B13)↔ANDCAM(Q)}

	↓TMPBIT ←← 1B2
	↓BDLBIT ←← 1B1	;BODY OPERATION DISABLE LOCOR ACTION.
	↓BDVBIT ←← 1B3	;BODY OPERATION DISABLE VERTEX ACTION.
	↓BDPBIT ←← 1B4	;BODY OPERATION DISABLE PARTS ACTION.

	↓TXTBIT ←← 1B24	;TEXT VERTEX.